import request from './request.js'

// ==================== 商品管理 ====================

// 获取当前卖家的所有商品
export function getSellerProducts() {
  console.log('调用getSellerProducts接口')
  return request({
    url: '/Products/seller',
    method: 'get'
  }).then(response => {
    console.log('卖家商品接口响应:', response)
    return response
  }).catch(error => {
    console.warn('卖家商品接口失败，尝试使用普通商品接口:', error)
    // 如果卖家接口不可用，临时使用普通商品接口
    return request({
      url: '/Products',
      method: 'get'
    }).then(response => {
      console.log('普通商品接口响应:', response)
      return response
    }).catch(err => {
      console.error('所有商品接口都失败:', err)
      throw err
    })
  })
}

// 添加商品
export function addSellerProduct(data) {
  return request({
    url: '/Products/add',
    method: 'post',
    data
  })
}

// 更新商品
export function updateSellerProduct(id, data) {
  return request({
    url: `/Products/${id}`,
    method: 'put',
    data
  })
}

// 删除商品
export function deleteSellerProduct(id) {
  return request({
    url: `/Products/${id}`,
    method: 'delete'
  })
}

// 获取商品详情
export function getSellerProductById(id) {
  return request({
    url: `/Products/${id}`,
    method: 'get'
  })
}

// 搜索卖家的商品
export function searchSellerProducts(name) {
  return request({
    url: '/Products/seller/search',
    method: 'get',
    params: { name }
  })
}

// 更新商品库存
export function updateProductStock(id, stock) {
  return request({
    url: `/Products/${id}/stock`,
    method: 'put',
    params: { stock }
  })
}

// 更新商品价格
export function updateProductPrice(id, price) {
  return request({
    url: `/Products/${id}/price`,
    method: 'put',
    params: { price }
  })
}

// 上传商品图片
export function uploadSellerProductImage(productId, formData) {
  return request({
    url: `/Products/${productId}/upload/image`,
    method: 'post',
    data: formData,
    headers: { 
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 通用图片上传接口（用于添加商品时）
export function uploadImage(formData) {
  return request({
    url: '/Products/upload/image',
    method: 'post',
    data: formData,
    headers: { 
      'Content-Type': 'multipart/form-data'
    }
  })
}

// ==================== 订单管理 ====================
// 注意：这些接口需要后端实现对应的订单管理接口

// 获取当前卖家的所有订单
export function getSellerOrders(params = {}) {
  return request({
    url: '/Orders/seller', // 需要后端实现此接口
    method: 'get',
    params
  })
}

// 获取订单详情
export function getSellerOrderById(id) {
  return request({
    url: `/Orders/${id}`, // 需要后端实现此接口
    method: 'get'
  })
}

// 更新订单状态
export function updateSellerOrderStatus(orderId, status) {
  return request({
    url: `/Orders/${orderId}/status`, // 需要后端实现此接口
    method: 'put',
    params: { status }
  })
}

// 发货
export function shipOrder(orderId, trackingNumber = '') {
  return request({
    url: `/Orders/${orderId}/ship`, // 需要后端实现此接口
    method: 'put',
    params: { trackingNumber }
  })
}

// 确认收货
export function confirmOrder(orderId) {
  return request({
    url: `/Orders/${orderId}/confirm`, // 需要后端实现此接口
    method: 'put'
  })
}

// ==================== 统计信息 ====================
// 注意：这些接口需要后端实现对应的统计接口

// 获取卖家统计信息
export function getSellerStats() {
  return request({
    url: '/Seller/stats', // 需要后端实现此接口
    method: 'get'
  })
}

// 获取商品销售统计
export function getProductSalesStats(productId) {
  return request({
    url: `/Products/${productId}/sales-stats`, // 需要后端实现此接口
    method: 'get'
  })
}

// 获取订单统计
export function getOrderStats() {
  return request({
    url: '/Orders/stats', // 需要后端实现此接口
    method: 'get'
  })
}

// ==================== 其他功能 ====================

// 获取卖家信息
export function getSellerInfo() {
  return request({
    url: '/Users/getById', // 使用现有的用户信息接口
    method: 'get'
  })
}

// 更新卖家信息
export function updateSellerInfo(data) {
  return request({
    url: '/Users/changeInfo', // 使用现有的用户信息更新接口
    method: 'post',
    data
  })
}